@@ -7,11 +7,7 @@ class ScenarioImportsController < ApplicationController |
||
7 | 7 |
@scenario_import = ScenarioImport.new(params[:scenario_import]) |
8 | 8 |
@scenario_import.set_user(current_user) |
9 | 9 |
|
10 |
- if @scenario_import.will_request_local?(scenarios_url) |
|
11 |
- render :text => 'Sorry, you cannot import a Scenario by URL from your own Huginn server.' and return |
|
12 |
- end |
|
13 |
- |
|
14 |
- if @scenario_import.valid? && @scenario_import.should_import? && @scenario_import.import |
|
10 |
+ if @scenario_import.valid? && @scenario_import.import_confirmed? && @scenario_import.import |
|
15 | 11 |
redirect_to @scenario_import.scenario, notice: "Import successful!" |
16 | 12 |
else |
17 | 13 |
render action: "new" |
@@ -50,7 +50,7 @@ class ScenarioImport |
||
50 | 50 |
@agent_diffs || generate_diff |
51 | 51 |
end |
52 | 52 |
|
53 |
- def should_import? |
|
53 |
+ def import_confirmed? |
|
54 | 54 |
do_import == "1" |
55 | 55 |
end |
56 | 56 |
|
@@ -111,10 +111,6 @@ class ScenarioImport |
||
111 | 111 |
@scenario || @existing_scenario |
112 | 112 |
end |
113 | 113 |
|
114 |
- def will_request_local?(url_root) |
|
115 |
- data.blank? && file.blank? && url.present? && url.starts_with?(url_root) |
|
116 |
- end |
|
117 |
- |
|
118 | 114 |
protected |
119 | 115 |
|
120 | 116 |
def parse_file |
@@ -317,7 +317,7 @@ describe ScenarioImport do |
||
317 | 317 |
end |
318 | 318 |
end |
319 | 319 |
|
320 |
- context "when an a scenario already exists with the given guid" do |
|
320 |
+ context "when an a scenario already exists with the given guid for the importing user" do |
|
321 | 321 |
let!(:existing_scenario) do |
322 | 322 |
_existing_scenerio = users(:bob).scenarios.build(:name => "an existing scenario", :description => "something") |
323 | 323 |
_existing_scenerio.guid = guid |
@@ -507,6 +507,31 @@ describe ScenarioImport do |
||
507 | 507 |
end |
508 | 508 |
end |
509 | 509 |
end |
510 |
+ |
|
511 |
+ context "when an a scenario already exists with the given guid for the a different user" do |
|
512 |
+ let!(:existing_scenario) do |
|
513 |
+ _existing_scenerio = users(:jane).scenarios.build(:name => "an existing scenario", :description => "something") |
|
514 |
+ _existing_scenerio.guid = guid |
|
515 |
+ _existing_scenerio.save! |
|
516 |
+ _existing_scenerio |
|
517 |
+ end |
|
518 |
+ |
|
519 |
+ describe "#import" do |
|
520 |
+ it "makes a new scenario" do |
|
521 |
+ expect { |
|
522 |
+ scenario_import.import(:skip_agents => true) |
|
523 |
+ }.to change { users(:bob).scenarios.count }.by(1) |
|
524 |
+ |
|
525 |
+ expect(scenario_import.scenario.name).to eq(name) |
|
526 |
+ expect(scenario_import.scenario.description).to eq(description) |
|
527 |
+ expect(scenario_import.scenario.guid).to eq(guid) |
|
528 |
+ expect(scenario_import.scenario.tag_fg_color).to eq(tag_fg_color) |
|
529 |
+ expect(scenario_import.scenario.tag_bg_color).to eq(tag_bg_color) |
|
530 |
+ expect(scenario_import.scenario.source_url).to eq(source_url) |
|
531 |
+ expect(scenario_import.scenario.public).to be_falsey |
|
532 |
+ end |
|
533 |
+ end |
|
534 |
+ end |
|
510 | 535 |
|
511 | 536 |
context "agents which require a service" do |
512 | 537 |
let(:valid_parsed_services) do |